home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-06-28 | 79.0 KB | 2,431 lines |
- extern char *malloc(), *realloc();
-
- # line 5 "yacc.y"
- #ifndef lint
- static char *rcsid = "$Header: /xtel/isode/isode/pepy/RCS/yacc.y.gnrc,v 9.0 1992/06/16 12:25:01 isode Rel $";
- #endif
-
- /*
- * $Header: /xtel/isode/isode/pepy/RCS/yacc.y.gnrc,v 9.0 1992/06/16 12:25:01 isode Rel $
- *
- *
- * $Log: yacc.y.gnrc,v $
- * Revision 9.0 1992/06/16 12:25:01 isode
- * Release 8.0
- *
- */
-
- /*
- * NOTICE
- *
- * Acquisition, use, and distribution of this module and related
- * materials are subject to the restrictions of a license agreement.
- * Consult the Preface in the User's Manual for the full terms of
- * this agreement.
- *
- */
-
-
- #include <stdio.h>
- #include <ctype.h>
- #include "rosy-defs.h"
-
- #define YYSTYPE YYSTKTYPE
-
-
- #define YYDEBUG 1
-
- extern int pepydebug;
- extern int doexternals;
-
- int tagcontrol = TAG_UNKNOWN;
- static int tagdefault;
- static int listtype;
- static OID modid;
-
- static int yyporting = 0;
-
- typedef struct ypa {
- char *ya_text;
- int ya_lineno;
- } ypa, *YA;
- #define NULLYA ((YA) 0)
- extern double pow ();
-
- static YA new_action (text, lineno)
- char *text;
- int lineno;
- {
- register YA ya;
-
- if ((ya = (YA) calloc (1, sizeof *ya)) == NULLYA)
- yyerror ("out of memory");
-
- ya -> ya_text = text;
- ya -> ya_lineno = lineno;
-
- return ya;
- }
- #define free_action(ya) (void) free ((char *) (ya))
-
- typedef struct {
- char *ys_structname;
- char *ys_ptrname;
- } ysa, *YS;
- #define NULLYS ((YS) 0)
-
- static YS new_ys (str)
- char *str;
- {
- register YS ys;
- register char *p, *q;
- char c;
-
- if((ys = (YS) malloc (sizeof *ys)) == NULLYS)
- yyerror ("out of memory");
- q = str;
- while (isspace ((u_char)*q)) q++;
- for (p = q; isalnum((u_char)*p) || *p == '_'; p++)
- continue;
- if (*p != '\0') {
- c = *p;
- *p = '\0';
- ys -> ys_structname = new_string (q);
- *p = c;
- }
- else {
- ys -> ys_structname = new_string (q);
- ys -> ys_ptrname = NULLCP;
- free (str);
- return ys;
- }
- for (q = p; *q != '$'; q++)
- if (! *q) {
- free (str);
- ys -> ys_ptrname = NULLCP;
- return ys;
- }
- q++;
- while (isspace ((u_char)*q)) q++;
- for (p = q; isalnum((u_char)*p) || *p == '_'; p++)
- continue;
- *p = '\0';
- ys -> ys_ptrname = new_string (q);
- free (str);
- return ys;
- }
- #define free_ys(ys) (void) free ((char *) (ys))
-
- static int final_actions = 0;
-
- # line 126 "yacc.y"
- typedef union {
- int yy_number;
- char *yy_string;
- YP yy_type;
- YV yy_value;
- YT yy_tag;
- YA yy_action;
- OID yy_oid;
- YS yy_sctrl;
- double yy_real;
- } YYSTYPE;
- # define ABSENT 257
- # define ACTION 258
- # define ANY 259
- # define APPLICATION 260
- # define BAR 261
- # define BGIN 262
- # define BIT 263
- # define BITSTRING 264
- # define BOOLEAN 265
- # define BY 266
- # define CCE 267
- # define CHOICE 268
- # define COMMA 269
- # define COMPONENT 270
- # define COMPONENTS 271
- # define COMPONENTSOF 272
- # define CONTROL 273
- # define DECODER 274
- # define DEFAULT 275
- # define DEFINED 276
- # define DEFINITIONS 277
- # define DOT 278
- # define DOTDOT 279
- # define DOTDOTDOT 280
- # define ENCODER 281
- # define ENCRYPTED 282
- # define END 283
- # define ENUMERATED 284
- # define EXPORTS 285
- # define EXPLICIT 286
- # define L_FALSE 287
- # define FROM 288
- # define ID 289
- # define IDENTIFIER 290
- # define IMPLICIT 291
- # define IMPORTS 292
- # define INCLUDES 293
- # define INTEGER 294
- # define LANGLE 295
- # define LBRACE 296
- # define LBRACKET 297
- # define LITNUMBER 298
- # define LITSTRING 299
- # define LPAREN 300
- # define MIN 301
- # define MAX 302
- # define NAME 303
- # define NIL 304
- # define OBJECT 305
- # define OCTET 306
- # define OCTETSTRING 307
- # define OF 308
- # define OPTIONAL 309
- # define PARAMETERTYPE 310
- # define PREFIXES 311
- # define PRESENT 312
- # define PRINTER 313
- # define PRIVATE 314
- # define RBRACE 315
- # define RBRACKET 316
- # define REAL 317
- # define RPAREN 318
- # define SECTIONS 319
- # define SEMICOLON 320
- # define SEQUENCE 321
- # define SEQUENCEOF 322
- # define SET 323
- # define SETOF 324
- # define SIZE 325
- # define STRING 326
- # define TAGS 327
- # define L_TRUE 328
- # define UNIVERSAL 329
- # define VALA 330
- # define VALB 331
- # define VALI 332
- # define VALS 333
- # define VALP 334
- # define VALO 335
- # define VALOID 336
- # define VALR 337
- # define VALQ 338
- # define VALX 339
- # define VLENGTH 340
- # define WITH 341
- # define SCTRL 342
- # define PLUSINFINITY 343
- # define MINUSINFINITY 344
- # define OPERATION 345
- # define ARGUMENT 346
- # define RESULT 347
- # define ERRORS 348
- # define LINKED 349
- # define ERROR 350
- # define PARAMETER 351
- # define ABSTRACT 352
- # define OPERATIONS 353
- # define CONSUMER 354
- # define SUPPLIER 355
- # define INVOKES 356
- # define PORT 357
- # define PORTS 358
- # define OBJECTCONSUMER 359
- # define OBJECTSUPPLIER 360
- # define REFINE 361
- # define AS 362
- # define RECURRING 363
- # define VISIBLE 364
- # define PAIRED 365
- # define BIND 366
- # define UNBIND 367
- #define yyclearin yychar = -1
- #define yyerrok yyerrflag = 0
- extern int yychar;
- extern int yyerrflag;
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 150
- #endif
- YYSTYPE yylval, yyval;
- # define YYERRCODE 256
-
- # line 1191 "yacc.y"
-
-
- #ifdef HPUX
- #define uchar Uchar
- #endif
- #include "lex.c"
- int yyexca[] ={
- -1, 1,
- 0, -1,
- -2, 0,
- -1, 55,
- 283, 14,
- -2, 211,
- -1, 246,
- 261, 191,
- 269, 191,
- 273, 191,
- 274, 191,
- 279, 191,
- 281, 191,
- 283, 191,
- 295, 191,
- 313, 191,
- 315, 191,
- 318, 191,
- 319, 191,
- -2, 110,
- -1, 250,
- 261, 201,
- 269, 201,
- 273, 201,
- 274, 201,
- 279, 201,
- 281, 201,
- 283, 201,
- 289, 201,
- 295, 201,
- 303, 201,
- 313, 201,
- 315, 201,
- 318, 201,
- 319, 201,
- -2, 211,
- -1, 258,
- 279, 250,
- 295, 250,
- -2, 238,
- -1, 279,
- 296, 100,
- -2, 141,
- -1, 318,
- 269, 201,
- 315, 201,
- -2, 211,
- -1, 378,
- 269, 205,
- 315, 205,
- -2, 154,
- -1, 382,
- 261, 203,
- 269, 203,
- 273, 203,
- 274, 203,
- 279, 203,
- 281, 203,
- 283, 203,
- 289, 203,
- 295, 203,
- 303, 203,
- 313, 203,
- 315, 203,
- 318, 203,
- 319, 203,
- -2, 211,
- };
- # define YYNPROD 275
- # define YYLAST 1138
- int yyact[]={
-
- 135, 343, 439, 158, 7, 12, 404, 403, 435, 309,
- 248, 361, 321, 6, 297, 324, 405, 338, 386, 328,
- 323, 240, 315, 154, 201, 375, 376, 232, 231, 34,
- 18, 152, 151, 38, 228, 18, 306, 292, 357, 146,
- 46, 151, 152, 140, 303, 51, 220, 401, 18, 137,
- 56, 182, 296, 60, 187, 34, 70, 276, 73, 203,
- 204, 205, 175, 275, 176, 207, 171, 177, 206, 199,
- 235, 184, 180, 175, 134, 176, 293, 167, 177, 164,
- 213, 194, 23, 22, 255, 210, 97, 209, 182, 184,
- 91, 155, 76, 472, 383, 35, 353, 102, 488, 138,
- 141, 145, 156, 20, 327, 487, 182, 165, 168, 168,
- 173, 173, 17, 183, 183, 183, 183, 19, 183, 480,
- 195, 67, 200, 173, 202, 468, 479, 464, 66, 24,
- 215, 196, 133, 456, 214, 96, 448, 221, 427, 426,
- 160, 161, 162, 430, 222, 397, 194, 226, 224, 212,
- 397, 224, 445, 190, 424, 236, 203, 204, 205, 175,
- 68, 176, 207, 445, 177, 206, 69, 272, 379, 369,
- 445, 272, 478, 238, 37, 258, 203, 204, 205, 175,
- 279, 176, 207, 451, 177, 206, 436, 279, 281, 429,
- 454, 399, 285, 280, 41, 159, 396, 8, 438, 339,
- 354, 289, 294, 291, 310, 364, 159, 444, 42, 438,
- 159, 157, 8, 159, 365, 20, 278, 450, 444, 363,
- 304, 20, 282, 284, 298, 444, 286, 305, 290, 30,
- 17, 224, 20, 299, 62, 30, 85, 398, 26, 481,
- 460, 17, 420, 134, 159, 322, 19, 134, 63, 431,
- 86, 173, 307, 417, 395, 301, 330, 359, 346, 341,
- 409, 408, 313, 325, 326, 312, 311, 271, 273, 237,
- 333, 8, 336, 192, 50, 331, 154, 10, 77, 466,
- 192, 183, 11, 345, 192, 382, 183, 345, 348, 295,
- 3, 345, 351, 31, 48, 45, 173, 93, 349, 350,
- 332, 27, 4, 358, 216, 344, 334, 335, 337, 381,
- 470, 469, 355, 467, 449, 425, 380, 360, 374, 378,
- 352, 366, 366, 366, 367, 368, 370, 77, 419, 233,
- 227, 225, 218, 21, 300, 39, 329, 134, 391, 33,
- 270, 150, 402, 317, 208, 258, 193, 414, 388, 149,
- 262, 178, 224, 294, 411, 166, 2, 224, 61, 416,
- 423, 74, 15, 14, 441, 440, 437, 32, 394, 393,
- 392, 390, 422, 268, 75, 385, 265, 25, 40, 410,
- 263, 179, 261, 173, 415, 330, 260, 259, 257, 29,
- 418, 256, 407, 428, 413, 119, 442, 115, 113, 443,
- 110, 109, 432, 388, 433, 373, 434, 352, 372, 371,
- 316, 345, 455, 447, 384, 446, 345, 457, 453, 47,
- 299, 463, 64, 452, 459, 153, 53, 59, 224, 362,
- 148, 147, 144, 462, 92, 366, 94, 465, 143, 442,
- 142, 471, 443, 84, 83, 87, 88, 89, 90, 82,
- 132, 345, 474, 81, 80, 174, 79, 473, 78, 65,
- 224, 172, 72, 181, 169, 188, 476, 475, 477, 131,
- 442, 442, 71, 443, 443, 57, 345, 485, 482, 483,
- 58, 52, 55, 130, 49, 44, 486, 124, 123, 106,
- 224, 229, 117, 5, 54, 185, 186, 189, 43, 191,
- 230, 36, 28, 9, 16, 13, 120, 211, 108, 484,
- 217, 274, 116, 122, 461, 356, 421, 302, 107, 319,
- 377, 129, 239, 139, 219, 136, 277, 118, 111, 101,
- 125, 126, 105, 283, 412, 458, 400, 170, 104, 103,
- 198, 121, 234, 163, 95, 112, 127, 114, 128, 252,
- 130, 251, 249, 1, 124, 123, 106, 0, 0, 117,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 98,
- 0, 308, 0, 120, 99, 108, 0, 314, 242, 266,
- 250, 100, 340, 0, 264, 107, 0, 244, 129, 243,
- 245, 0, 269, 0, 247, 246, 197, 125, 126, 0,
- 0, 130, 0, 0, 0, 124, 123, 106, 121, 0,
- 117, 0, 112, 127, 114, 128, 184, 0, 0, 241,
- 0, 0, 0, 0, 120, 0, 108, 0, 0, 242,
- 0, 250, 267, 0, 253, 254, 107, 387, 244, 129,
- 243, 245, 0, 0, 389, 247, 246, 197, 125, 126,
- 0, 0, 130, 0, 0, 0, 124, 123, 106, 121,
- 0, 117, 342, 112, 127, 114, 128, 347, 0, 0,
- 241, 0, 0, 0, 0, 120, 0, 108, 0, 0,
- 242, 0, 250, 0, 0, 253, 254, 107, 0, 244,
- 129, 243, 245, 0, 0, 389, 247, 246, 197, 125,
- 126, 0, 0, 130, 0, 0, 0, 124, 123, 106,
- 121, 0, 117, 0, 112, 127, 114, 128, 0, 0,
- 0, 241, 0, 0, 0, 0, 120, 0, 108, 0,
- 0, 242, 0, 250, 0, 0, 253, 254, 107, 0,
- 244, 129, 243, 245, 159, 0, 0, 247, 246, 197,
- 125, 126, 0, 0, 130, 0, 0, 0, 124, 123,
- 106, 121, 0, 117, 0, 112, 127, 114, 128, 0,
- 0, 0, 241, 0, 0, 0, 0, 120, 0, 108,
- 0, 0, 242, 0, 250, 0, 0, 253, 254, 107,
- 192, 244, 129, 243, 245, 0, 0, 0, 247, 246,
- 197, 125, 126, 0, 0, 130, 0, 0, 0, 124,
- 123, 106, 121, 0, 117, 0, 112, 127, 114, 128,
- 0, 0, 0, 241, 0, 0, 0, 0, 120, 0,
- 108, 0, 0, 242, 0, 250, 0, 0, 253, 254,
- 107, 0, 244, 129, 243, 245, 0, 0, 0, 247,
- 246, 197, 125, 126, 0, 0, 130, 0, 0, 0,
- 124, 123, 106, 121, 0, 117, 0, 112, 127, 114,
- 128, 0, 0, 0, 241, 0, 0, 0, 0, 120,
- 0, 108, 0, 0, 242, 0, 318, 0, 0, 253,
- 254, 107, 0, 244, 129, 320, 245, 0, 0, 0,
- 247, 246, 197, 125, 126, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 121, 0, 0, 0, 112, 127,
- 114, 128, 130, 0, 0, 241, 124, 123, 106, 0,
- 0, 117, 0, 0, 409, 408, 0, 0, 0, 0,
- 253, 254, 0, 0, 0, 120, 0, 108, 0, 0,
- 0, 0, 122, 0, 0, 0, 0, 107, 0, 0,
- 129, 0, 0, 0, 0, 0, 406, 111, 197, 125,
- 126, 0, 130, 0, 0, 0, 124, 123, 106, 0,
- 121, 117, 0, 0, 112, 127, 114, 128, 0, 0,
- 0, 0, 0, 0, 0, 120, 0, 108, 0, 288,
- 0, 0, 122, 0, 287, 0, 0, 107, 0, 0,
- 129, 0, 0, 0, 0, 0, 118, 111, 197, 125,
- 126, 0, 130, 0, 0, 0, 124, 123, 106, 0,
- 121, 117, 0, 0, 112, 127, 114, 128, 0, 0,
- 0, 0, 0, 0, 0, 120, 0, 108, 0, 0,
- 0, 0, 122, 0, 0, 0, 0, 107, 0, 0,
- 129, 0, 0, 0, 0, 0, 223, 111, 197, 125,
- 126, 0, 130, 0, 0, 0, 124, 123, 106, 0,
- 121, 117, 0, 0, 112, 127, 114, 128, 0, 0,
- 0, 0, 0, 0, 0, 120, 0, 108, 0, 0,
- 0, 0, 122, 0, 0, 0, 0, 107, 0, 0,
- 129, 0, 0, 0, 0, 0, 118, 111, 197, 125,
- 126, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 121, 0, 0, 0, 112, 127, 114, 128 };
- int yypact[]={
-
- 1, -1000, 25, -25, -9, -1000, -1000, -1000, -57, 66,
- -244, -245, -1000, -186, -1000, -1000, -1000, -1000, -1000, -62,
- 23, -1000, -1000, -1000, -1000, -1000, -68, 4, 81, -223,
- -1000, -1000, -137, -1000, -1000, -1000, 73, -95, -1000, 10,
- -95, -1000, -1000, 11, -18, -1000, -1000, -95, -1000, -1000,
- -1000, -1000, -55, -1000, 81, -153, -1000, -55, -228, 58,
- -1000, -1000, -1000, -1000, -1000, -53, -95, -95, -95, -95,
- -1000, -230, -55, -1000, -1000, 9, -1000, -55, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -175, 224, -1000, -1000, -1000,
- -95, -1000, -1000, 1, -1000, 79, -1000, -1000, -297, -308,
- -313, -267, -56, 79, 79, 79, -252, -255, -255, -273,
- -260, -1000, -236, -291, -254, -291, 79, -291, -22, -249,
- 813, -268, -154, -1000, -239, -241, -1000, -1000, -1000, -180,
- 28, -95, -1000, 65, -1000, -1000, -301, 763, -1000, 64,
- 763, -1000, 63, -1000, -1000, -1000, -319, -1000, -1000, -324,
- -322, -328, -329, 62, -266, -27, -1000, 546, -1000, 291,
- -1000, -1000, -1000, -1000, -1000, -1000, -29, -1000, -1000, -28,
- -29, -277, -1000, -1000, -1000, -1000, -283, -1000, -1000, -184,
- -1000, -115, -1000, -1000, -90, 79, -184, -1000, -116, 79,
- 713, 79, 813, -1000, -1000, -1000, -90, -14, -1000, -1000,
- -1000, -258, 0, -1000, -1000, -1000, -288, -1000, -1000, -1000,
- -1000, -74, -1000, -1000, -1000, -1000, 68, -1000, 79, -304,
- 763, -1000, -1000, -15, -90, -46, -1000, -99, -30, -1000,
- -1000, -31, -34, -99, -1000, -1000, -1000, -99, -1000, -1000,
- -1000, -1000, -1000, -1000, 597, -1000, -1000, 495, 444, -1000,
- -174, -1000, -1000, -1000, -1000, 75, -1000, -1000, -1000, -1000,
- -1000, -1000, -1000, -1000, 813, 21, -90, 36, -23, -1000,
- -1000, -104, -1000, -104, -1000, -1000, -1000, -1000, -37, -1000,
- -291, -1000, 32, -1000, -38, -291, 32, 813, 813, -90,
- 32, -90, -1000, -1000, -1000, -271, -1000, -220, -1000, -1000,
- -103, 813, -311, -39, -1000, -1000, 813, -1000, -1000, -1000,
- -1000, -84, -84, -84, -1000, -146, 57, -334, -174, -147,
- 47, 40, -1000, -1000, -1000, -1000, -1000, -4, -224, 291,
- -1000, -90, 342, -1000, -90, -42, -1000, -119, -1000, -63,
- -124, 663, 79, 813, -1000, -1000, 663, 79, 813, -90,
- -90, -43, -258, -1000, -1000, -90, 61, -54, -1000, 546,
- -90, -161, 46, -1000, -1000, -1000, -1000, -176, -177, -1000,
- -99, -1000, -1000, -1000, -1000, -1000, -1000, -126, -1000, -1000,
- -49, 546, -271, -1000, 75, -1000, -1000, 393, -1000, -1000,
- -1000, -1000, -1000, -1000, -1000, -94, -1000, -104, -74, -1000,
- -179, 45, -1000, -1000, -92, -1000, -11, 813, -1000, -118,
- 32, -90, -182, 45, -1000, 32, -90, 763, -1000, -58,
- 546, -188, 40, -1000, -1000, -84, -1000, -1000, -1000, -1000,
- -10, 44, -1000, -1000, -1000, -190, 42, 41, -87, -1000,
- -1000, -1000, -1000, -1000, -1000, -1000, -1000, -225, -1000, 663,
- 32, 546, -1000, -90, -1000, 813, -1000, 813, -143, -1000,
- -1000, -196, 40, -1000, -1000, -1000, -1000, -59, -1000, -105,
- -105, -1000, 79, -1000, -1000, 32, -90, -90, -1000, 763,
- -1000, -210, -217, -1000, -1000, -1000, -1000, -1000, -1000 };
- int yypgo[]={
-
- 0, 553, 552, 551, 549, 544, 1, 37, 378, 355,
- 543, 542, 346, 540, 356, 358, 374, 10, 539, 538,
- 24, 537, 344, 351, 536, 47, 7, 6, 16, 535,
- 534, 532, 525, 524, 523, 308, 17, 14, 15, 522,
- 21, 520, 519, 12, 20, 340, 517, 516, 515, 514,
- 512, 507, 36, 505, 9, 363, 362, 504, 381, 503,
- 502, 367, 501, 498, 494, 0, 493, 485, 484, 482,
- 481, 480, 475, 472, 462, 361, 459, 458, 456, 454,
- 453, 449, 444, 443, 440, 343, 438, 432, 11, 431,
- 430, 349, 341, 429, 425, 22, 410, 409, 408, 405,
- 401, 400, 398, 397, 395, 392, 3, 350, 84, 19,
- 391, 388, 387, 386, 382, 380, 376, 375, 373, 18,
- 371, 370, 369, 368, 8, 366, 2, 365, 364 };
- int yyr1[]={
-
- 0, 60, 64, 1, 59, 59, 59, 14, 66, 66,
- 61, 61, 62, 62, 63, 70, 67, 67, 71, 71,
- 72, 68, 68, 73, 73, 74, 74, 75, 16, 16,
- 15, 15, 69, 69, 76, 76, 76, 76, 76, 8,
- 8, 77, 77, 77, 77, 77, 77, 79, 32, 32,
- 33, 33, 46, 46, 48, 48, 47, 47, 49, 49,
- 80, 34, 34, 81, 85, 85, 84, 84, 84, 86,
- 87, 87, 89, 89, 90, 90, 91, 92, 88, 88,
- 93, 93, 93, 93, 82, 94, 94, 95, 95, 96,
- 97, 97, 98, 99, 99, 78, 17, 17, 17, 52,
- 52, 6, 6, 5, 5, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 45, 45, 19, 19,
- 20, 20, 20, 20, 20, 20, 104, 104, 11, 11,
- 12, 12, 10, 10, 9, 9, 21, 21, 22, 22,
- 22, 22, 13, 13, 23, 7, 7, 35, 35, 36,
- 37, 37, 24, 24, 30, 30, 25, 25, 26, 26,
- 26, 26, 26, 27, 27, 28, 29, 29, 50, 51,
- 51, 51, 51, 83, 38, 38, 39, 39, 39, 39,
- 39, 39, 39, 39, 39, 39, 2, 2, 4, 4,
- 3, 40, 40, 40, 41, 41, 42, 42, 43, 43,
- 44, 65, 101, 101, 100, 100, 102, 102, 103, 103,
- 105, 105, 54, 53, 53, 55, 55, 56, 56, 57,
- 31, 31, 31, 106, 108, 108, 109, 109, 110, 110,
- 110, 110, 111, 111, 112, 113, 116, 116, 117, 117,
- 118, 118, 119, 119, 107, 114, 115, 115, 120, 121,
- 121, 122, 123, 124, 124, 125, 125, 126, 126, 126,
- 127, 128, 128, 58, 58 };
- int yyr2[]={
-
- 0, 1, 1, 24, 5, 5, 3, 5, 3, 2,
- 3, 2, 9, 2, 6, 1, 9, 2, 2, 2,
- 1, 9, 2, 2, 2, 4, 2, 7, 7, 3,
- 2, 2, 6, 2, 5, 5, 5, 9, 2, 3,
- 3, 2, 2, 2, 2, 2, 2, 17, 5, 3,
- 5, 3, 9, 3, 9, 3, 3, 3, 3, 3,
- 11, 5, 3, 10, 2, 2, 2, 2, 2, 10,
- 2, 2, 2, 2, 4, 4, 10, 10, 2, 6,
- 2, 2, 2, 2, 10, 8, 2, 6, 2, 4,
- 2, 2, 2, 2, 2, 13, 5, 5, 5, 2,
- 3, 2, 3, 2, 3, 5, 7, 11, 7, 5,
- 3, 7, 11, 13, 7, 11, 13, 9, 9, 7,
- 15, 7, 5, 7, 5, 5, 7, 3, 7, 11,
- 3, 3, 3, 5, 3, 2, 2, 8, 2, 3,
- 2, 3, 2, 3, 2, 3, 5, 2, 3, 5,
- 3, 2, 2, 3, 3, 2, 3, 3, 7, 11,
- 3, 2, 3, 3, 3, 3, 3, 7, 3, 7,
- 9, 3, 5, 7, 3, 5, 3, 7, 9, 3,
- 3, 3, 3, 8, 2, 2, 3, 3, 3, 9,
- 3, 3, 7, 5, 5, 3, 2, 2, 3, 3,
- 15, 3, 3, 7, 7, 3, 3, 3, 3, 7,
- 3, 0, 4, 2, 2, 4, 2, 4, 2, 4,
- 2, 4, 7, 2, 5, 2, 2, 3, 3, 9,
- 4, 15, 15, 8, 2, 2, 6, 2, 2, 2,
- 2, 2, 2, 2, 4, 6, 2, 4, 2, 4,
- 2, 2, 2, 2, 4, 4, 6, 6, 2, 2,
- 2, 6, 10, 2, 6, 4, 2, 2, 2, 2,
- 2, 2, 2, 3, 3 };
- int yychk[]={
-
- -1000, -1, -14, 289, 277, -66, -54, -65, 296, -59,
- 286, 291, -65, -53, -55, -56, -57, 298, -40, 303,
- 289, 267, 327, 327, 315, -55, 300, 278, -60, -56,
- 303, 289, -61, 258, -65, 318, -62, 311, -65, 262,
- -8, 289, 303, -63, -67, 285, -65, -8, 283, -68,
- 292, -65, -70, -8, -64, -69, -65, -72, -71, -16,
- -65, -15, 289, 303, -61, -76, 281, 274, 313, 319,
- -65, -73, -74, -65, -75, -16, 320, 269, -77, -78,
- -79, -80, -81, -82, -83, 289, 303, -8, -8, -8,
- -8, 320, -75, 288, -15, -5, 310, -65, 345, 350,
- 357, 305, -17, -18, -19, -31, 265, 294, 284, -100,
- -101, 304, 321, -102, 323, -103, -50, 268, 303, -104,
- 282, 317, 289, 264, 263, 306, 307, 322, 324, 297,
- 259, -8, -14, -52, 258, -65, -32, 346, -65, -34,
- 351, -65, -84, -86, -87, -65, 352, -89, -90, -91,
- -92, 354, 355, -94, 290, 358, -65, 267, -106, 300,
- -52, -52, -52, -10, 331, -65, -9, 332, -65, -9,
- -21, 339, -23, -65, -22, 333, 335, 338, -23, -58,
- 308, -107, 342, -65, 325, -58, -58, 308, -107, -58,
- -52, -58, 295, -12, 330, -65, -17, 305, -13, 337,
- -65, -20, 278, 330, 331, 332, 339, 336, -22, 326,
- 326, -51, 329, 260, 314, -65, 276, -8, 267, -33,
- 347, -65, -27, 303, -17, 267, -27, 267, 353, -92,
- -91, 356, 356, 267, -11, 336, -65, 296, -38, -39,
- -40, 328, 287, 298, 296, 299, 304, 303, -17, -2,
- 289, -3, -4, 343, 344, -108, -110, -111, -38, -112,
- -113, -114, -107, -115, 293, -116, 288, 341, -118, 301,
- -45, 296, -65, 296, -45, 340, 340, -12, -52, -65,
- 308, -106, -52, -12, -52, 308, -52, 291, 286, -17,
- -52, -17, -7, 334, -65, 289, 340, -37, 298, -40,
- 266, -52, -46, 348, -65, -27, -52, 298, -85, -54,
- 303, 296, 296, 296, -85, -95, -96, -85, 289, -42,
- 298, -43, -65, -44, -38, -38, -38, 278, -109, 261,
- -65, -17, 279, -106, 270, 271, 295, -35, -36, 303,
- -35, 296, -58, -6, 273, -65, 296, -58, -6, -17,
- -17, -6, -20, 316, 303, -17, -48, 349, -65, 296,
- -17, -88, -93, 303, 289, 298, -54, -88, -88, 315,
- 269, -97, -98, -99, -65, 359, 360, -41, -65, 315,
- 269, 269, 289, 318, -108, -117, -119, 295, -38, 302,
- -120, -106, -121, -122, -123, 296, 315, 269, 300, 315,
- -24, -25, -65, -26, -27, -28, 303, -105, 272, 271,
- -52, -17, -30, -25, -65, -52, -17, 296, -7, 267,
- 296, -47, -43, -65, 315, 269, 315, 315, -95, 315,
- 269, 298, -44, -109, -119, -124, 280, -125, 303, -126,
- -127, -128, -65, -106, 312, 257, -36, -37, 315, 269,
- 309, 275, -28, -17, 308, -6, 315, -6, -29, -27,
- 298, -49, -43, -65, 315, -88, 289, 269, 315, 269,
- 269, -126, 318, -26, -6, -38, -17, -17, 315, 269,
- 315, 298, -124, -124, -52, -6, -27, 315, 315 };
- int yydef[]={
-
- 0, -2, 0, 211, 211, 7, 8, 9, 0, 0,
- 0, 0, 6, 0, 223, 225, 226, 227, 228, 202,
- 201, 1, 4, 5, 222, 224, 0, 0, 211, 0,
- 202, 203, 211, 10, 11, 229, 0, 0, 13, 211,
- 0, 39, 40, 0, 211, 15, 17, 0, 2, 211,
- 20, 22, 211, 12, 211, -2, 33, 211, 0, 18,
- 19, 29, 30, 31, 3, 0, 0, 0, 0, 0,
- 38, 0, 23, 24, 26, 0, 16, 0, 32, 41,
- 42, 43, 44, 45, 46, 211, 0, 34, 35, 36,
- 0, 21, 25, 0, 28, 211, 103, 104, 211, 211,
- 211, 211, 0, 211, 211, 211, 211, 211, 211, 211,
- 211, 110, 211, 211, 211, 211, 211, 211, 0, 211,
- 0, 211, 211, 214, 0, 0, 213, 216, 218, 211,
- 136, 0, 27, 0, 99, 100, 211, 0, 49, 0,
- 0, 62, 0, 66, 67, 68, 0, 70, 71, 72,
- 73, 0, 0, 0, 211, 0, 86, 0, 230, 0,
- 96, 97, 98, 105, 142, 143, 211, 144, 145, 0,
- 211, 0, 147, 154, 109, 148, 0, 150, 151, 211,
- 217, 0, 273, 274, 0, 211, 211, 219, 0, 211,
- 0, 211, 0, 122, 140, 141, 124, 0, 125, 152,
- 153, 211, 0, 130, 131, 132, 0, 134, 135, 215,
- 212, 0, 179, 180, 181, 182, 0, 37, 211, 211,
- 0, 51, 48, 211, 174, 0, 61, 0, 0, 74,
- 75, 0, 0, 0, 123, 138, 139, 0, 183, 184,
- 185, 186, 187, 188, 211, 190, -2, 202, 0, 195,
- -2, 196, 197, 198, 199, 211, 234, 235, -2, 239,
- 240, 241, 242, 243, 0, 0, 0, 0, 246, 251,
- 106, 0, 127, 0, 108, 146, 149, 111, 0, -2,
- 211, 254, 211, 114, 0, 211, 211, 0, 0, 119,
- 211, 121, 128, 155, 156, 211, 133, 0, 160, 161,
- 0, 0, 211, 0, 53, 50, 0, 60, 63, 64,
- 65, 0, 0, 0, 84, 0, 88, 211, -2, 0,
- 188, 206, 207, 208, 210, 193, 194, 0, 0, 0,
- 237, 244, 0, 255, 0, 0, 247, 0, 157, 0,
- 0, 211, 211, 0, 101, 102, 211, 211, 0, 117,
- 118, 0, 211, 178, 137, 95, 0, 0, 55, 211,
- 173, 0, 78, 80, 81, 82, 83, 0, 0, 85,
- 0, 89, 90, 91, 92, 93, 94, 0, -2, 192,
- 0, 0, -2, 233, 211, 245, 248, 0, 252, 253,
- 256, 258, 257, 259, 260, 211, 126, 0, 0, 107,
- 0, 162, 163, 166, 168, 171, 211, 0, 220, 0,
- 211, 112, 0, 164, 165, 211, 115, 0, 129, 0,
- 211, 0, 56, 57, 69, 0, 76, 77, 87, 189,
- 0, 0, 209, 236, 249, 0, 0, 263, 211, 266,
- 267, 268, 269, 270, 271, 272, 158, 0, 113, 0,
- 211, 0, 172, 175, 221, 0, 116, 0, 0, 176,
- 47, 0, 58, 59, 52, 79, 204, 0, 261, 211,
- 211, 265, 211, 167, 169, 211, 232, 231, 120, 0,
- 54, 0, 0, 264, 159, 170, 177, 200, 262 };
- typedef struct { char *t_name; int t_val; } yytoktype;
- #ifndef YYDEBUG
- # define YYDEBUG 0 /* don't allow debugging */
- #endif
-
- #if YYDEBUG
-
- yytoktype yytoks[] =
- {
- "ABSENT", 257,
- "ACTION", 258,
- "ANY", 259,
- "APPLICATION", 260,
- "BAR", 261,
- "BGIN", 262,
- "BIT", 263,
- "BITSTRING", 264,
- "BOOLEAN", 265,
- "BY", 266,
- "CCE", 267,
- "CHOICE", 268,
- "COMMA", 269,
- "COMPONENT", 270,
- "COMPONENTS", 271,
- "COMPONENTSOF", 272,
- "CONTROL", 273,
- "DECODER", 274,
- "DEFAULT", 275,
- "DEFINED", 276,
- "DEFINITIONS", 277,
- "DOT", 278,
- "DOTDOT", 279,
- "DOTDOTDOT", 280,
- "ENCODER", 281,
- "ENCRYPTED", 282,
- "END", 283,
- "ENUMERATED", 284,
- "EXPORTS", 285,
- "EXPLICIT", 286,
- "L_FALSE", 287,
- "FROM", 288,
- "ID", 289,
- "IDENTIFIER", 290,
- "IMPLICIT", 291,
- "IMPORTS", 292,
- "INCLUDES", 293,
- "INTEGER", 294,
- "LANGLE", 295,
- "LBRACE", 296,
- "LBRACKET", 297,
- "LITNUMBER", 298,
- "LITSTRING", 299,
- "LPAREN", 300,
- "MIN", 301,
- "MAX", 302,
- "NAME", 303,
- "NIL", 304,
- "OBJECT", 305,
- "OCTET", 306,
- "OCTETSTRING", 307,
- "OF", 308,
- "OPTIONAL", 309,
- "PARAMETERTYPE", 310,
- "PREFIXES", 311,
- "PRESENT", 312,
- "PRINTER", 313,
- "PRIVATE", 314,
- "RBRACE", 315,
- "RBRACKET", 316,
- "REAL", 317,
- "RPAREN", 318,
- "SECTIONS", 319,
- "SEMICOLON", 320,
- "SEQUENCE", 321,
- "SEQUENCEOF", 322,
- "SET", 323,
- "SETOF", 324,
- "SIZE", 325,
- "STRING", 326,
- "TAGS", 327,
- "L_TRUE", 328,
- "UNIVERSAL", 329,
- "VALA", 330,
- "VALB", 331,
- "VALI", 332,
- "VALS", 333,
- "VALP", 334,
- "VALO", 335,
- "VALOID", 336,
- "VALR", 337,
- "VALQ", 338,
- "VALX", 339,
- "VLENGTH", 340,
- "WITH", 341,
- "SCTRL", 342,
- "PLUSINFINITY", 343,
- "MINUSINFINITY", 344,
- "OPERATION", 345,
- "ARGUMENT", 346,
- "RESULT", 347,
- "ERRORS", 348,
- "LINKED", 349,
- "ERROR", 350,
- "PARAMETER", 351,
- "ABSTRACT", 352,
- "OPERATIONS", 353,
- "CONSUMER", 354,
- "SUPPLIER", 355,
- "INVOKES", 356,
- "PORT", 357,
- "PORTS", 358,
- "OBJECTCONSUMER", 359,
- "OBJECTSUPPLIER", 360,
- "REFINE", 361,
- "AS", 362,
- "RECURRING", 363,
- "VISIBLE", 364,
- "PAIRED", 365,
- "BIND", 366,
- "UNBIND", 367,
- "-unknown-", -1 /* ends search */
- };
-
- char * yyreds[] =
- {
- "-no such reduction-",
- "ModuleDefinition : ModuleIdentifier DEFINITIONS TagDefault CCE",
- "ModuleDefinition : ModuleIdentifier DEFINITIONS TagDefault CCE ModuleActions ModulePrefixes BGIN ModuleBody END",
- "ModuleDefinition : ModuleIdentifier DEFINITIONS TagDefault CCE ModuleActions ModulePrefixes BGIN ModuleBody END ModuleActions",
- "TagDefault : EXPLICIT TAGS",
- "TagDefault : IMPLICIT TAGS",
- "TagDefault : empty",
- "ModuleIdentifier : ID AssignedIdentifier",
- "AssignedIdentifier : ObjectIdentifierValue",
- "AssignedIdentifier : empty",
- "ModuleActions : ACTION",
- "ModuleActions : empty",
- "ModulePrefixes : PREFIXES String String String",
- "ModulePrefixes : empty",
- "ModuleBody : Exports Imports AssignmentList",
- "Exports : EXPORTS",
- "Exports : EXPORTS SymbolsExported SEMICOLON",
- "Exports : empty",
- "SymbolsExported : SymbolList",
- "SymbolsExported : empty",
- "Imports : IMPORTS",
- "Imports : IMPORTS SymbolsImported SEMICOLON",
- "Imports : empty",
- "SymbolsImported : SymbolsFromModuleList",
- "SymbolsImported : empty",
- "SymbolsFromModuleList : SymbolsFromModuleList SymbolsFromModule",
- "SymbolsFromModuleList : SymbolsFromModule",
- "SymbolsFromModule : SymbolList FROM ModuleIdentifier",
- "SymbolList : SymbolList COMMA Symbol",
- "SymbolList : Symbol",
- "Symbol : ID",
- "Symbol : NAME",
- "AssignmentList : AssignmentList Section Assignment",
- "AssignmentList : empty",
- "Section : ENCODER String",
- "Section : DECODER String",
- "Section : PRINTER String",
- "Section : SECTIONS String String String",
- "Section : empty",
- "String : ID",
- "String : NAME",
- "Assignment : Typeassignment",
- "Assignment : OperationDefinition",
- "Assignment : ErrorDefinition",
- "Assignment : PortDefinition",
- "Assignment : ObjectDefinition",
- "Assignment : Valueassignment",
- "OperationDefinition : NAME OPERATION Argument Result Errors LinkedOperations CCE LITNUMBER",
- "Argument : ARGUMENT NamedType",
- "Argument : empty",
- "Result : RESULT NamedType",
- "Result : empty",
- "Errors : ERRORS LBRACE ErrorNames RBRACE",
- "Errors : empty",
- "LinkedOperations : LINKED LBRACE LinkedOperationNames RBRACE",
- "LinkedOperations : empty",
- "ErrorNames : NamedValueList",
- "ErrorNames : empty",
- "LinkedOperationNames : NamedValueList",
- "LinkedOperationNames : empty",
- "ErrorDefinition : NAME ERROR Parameter CCE LITNUMBER",
- "Parameter : PARAMETER NamedType",
- "Parameter : empty",
- "PortDefinition : NAME PORT PortOperations CCE PortValue",
- "PortValue : ObjectIdentifierValue",
- "PortValue : NAME",
- "PortOperations : PortSymmetrical",
- "PortOperations : PortAsymetrical",
- "PortOperations : empty",
- "PortSymmetrical : ABSTRACT OPERATIONS LBRACE PortOperationList RBRACE",
- "PortAsymetrical : PortOneSided",
- "PortAsymetrical : PortTwoSided",
- "PortOneSided : PortConsumer",
- "PortOneSided : PortSupplier",
- "PortTwoSided : PortConsumer PortSupplier",
- "PortTwoSided : PortSupplier PortConsumer",
- "PortConsumer : CONSUMER INVOKES LBRACE PortOperationList RBRACE",
- "PortSupplier : SUPPLIER INVOKES LBRACE PortOperationList RBRACE",
- "PortOperationList : OperationValue",
- "PortOperationList : OperationValue COMMA PortOperationList",
- "OperationValue : NAME",
- "OperationValue : ID",
- "OperationValue : LITNUMBER",
- "OperationValue : ObjectIdentifierValue",
- "ObjectDefinition : NAME OBJECT ObjectType CCE PortValue",
- "ObjectType : PORTS LBRACE ObjectPortList RBRACE",
- "ObjectType : empty",
- "ObjectPortList : ObjectPort COMMA ObjectPortList",
- "ObjectPortList : ObjectPort",
- "ObjectPort : PortValue ObjectPortType",
- "ObjectPortType : ObjectSymetric",
- "ObjectPortType : ObjectAsymetric",
- "ObjectSymetric : empty",
- "ObjectAsymetric : OBJECTCONSUMER",
- "ObjectAsymetric : OBJECTSUPPLIER",
- "Typeassignment : ID ParameterType Action CCE Action Type",
- "Type : BuiltinType Action",
- "Type : DefinedType Action",
- "Type : SubType Action",
- "Action : ACTION",
- "Action : empty",
- "Control : CONTROL",
- "Control : empty",
- "ParameterType : PARAMETERTYPE",
- "ParameterType : empty",
- "BuiltinType : BOOLEAN PassBool",
- "BuiltinType : INTEGER PassInt NNlist",
- "BuiltinType : ENUMERATED PassInt LBRACE NamedNumberList RBRACE",
- "BuiltinType : Bitstring PassBit NNlist",
- "BuiltinType : Octetstring PassString",
- "BuiltinType : NIL",
- "BuiltinType : SEQUENCE Sctrl PassAny",
- "BuiltinType : SequenceOf Sctrl Action Control Type",
- "BuiltinType : SEQUENCE Sctrl Action LBRACE ElementTypes RBRACE",
- "BuiltinType : SET Sctrl PassAny",
- "BuiltinType : SetOf Sctrl Action Control Type",
- "BuiltinType : SET Sctrl Action LBRACE MemberTypes RBRACE",
- "BuiltinType : Tag Action IMPLICIT Type",
- "BuiltinType : Tag Action EXPLICIT Type",
- "BuiltinType : Tag Action Type",
- "BuiltinType : CHOICE Sctrl Action Control LBRACE AlternativeTypeList RBRACE",
- "BuiltinType : NAME LANGLE Type",
- "BuiltinType : AnyType PassAny",
- "BuiltinType : OBJECT IDENTIFIER PassOid",
- "BuiltinType : ENCRYPTED Type",
- "BuiltinType : REAL PassReal",
- "NNlist : LBRACE NamedNumberList RBRACE",
- "NNlist : empty",
- "DefinedType : ID PassValue ValParameter",
- "DefinedType : ID DOT ID PassValue ValParameter",
- "PassValue : VALA",
- "PassValue : VALB",
- "PassValue : VALI",
- "PassValue : VALX VLENGTH",
- "PassValue : VALOID",
- "PassValue : PassString",
- "AnyType : ANY",
- "AnyType : ANY DEFINED BY NAME",
- "PassOid : VALOID",
- "PassOid : empty",
- "PassAny : VALA",
- "PassAny : empty",
- "PassBool : VALB",
- "PassBool : empty",
- "PassInt : VALI",
- "PassInt : empty",
- "PassBit : VALX VLENGTH",
- "PassBit : NullPass",
- "PassString : VALS",
- "PassString : VALO VLENGTH",
- "PassString : VALQ",
- "PassString : NullPass",
- "PassReal : VALR",
- "PassReal : empty",
- "NullPass : empty",
- "ValParameter : VALP",
- "ValParameter : empty",
- "NamedNumberList : NamedNumber",
- "NamedNumberList : NamedNumberList COMMA NamedNumber",
- "NamedNumber : NAME LPAREN NumericValue RPAREN Action",
- "NumericValue : LITNUMBER",
- "NumericValue : DefinedValue",
- "ElementTypes : OptionalTypeList",
- "ElementTypes : empty",
- "MemberTypes : OptionalTypeList",
- "MemberTypes : empty",
- "OptionalTypeList : OptionalType",
- "OptionalTypeList : OptionalTypeList COMMA OptionalType",
- "OptionalType : NamedType",
- "OptionalType : NamedType OPTIONAL Control",
- "OptionalType : NamedType DEFAULT Value Control",
- "OptionalType : ComponentsOf",
- "OptionalType : NAME ComponentsOf",
- "NamedType : NAME Action Type",
- "NamedType : Type",
- "ComponentsOf : Components Type",
- "AlternativeTypeList : NamedType",
- "AlternativeTypeList : AlternativeTypeList COMMA NamedType",
- "Tag : LBRACKET Class NumericValue RBRACKET",
- "Class : UNIVERSAL",
- "Class : APPLICATION",
- "Class : PRIVATE",
- "Class : empty",
- "Valueassignment : NAME Type CCE Value",
- "Value : BuiltinValue",
- "Value : DefinedValue",
- "BuiltinValue : L_TRUE",
- "BuiltinValue : L_FALSE",
- "BuiltinValue : LITNUMBER",
- "BuiltinValue : LBRACE ID IdentifierList RBRACE",
- "BuiltinValue : LITSTRING",
- "BuiltinValue : NIL",
- "BuiltinValue : LBRACE Values RBRACE",
- "BuiltinValue : NAME Value",
- "BuiltinValue : Type Value",
- "BuiltinValue : RealValue",
- "RealValue : NumericRealValue",
- "RealValue : SpecialRealValue",
- "SpecialRealValue : PLUSINFINITY",
- "SpecialRealValue : MINUSINFINITY",
- "NumericRealValue : LBRACE LITNUMBER COMMA LITNUMBER COMMA LITNUMBER RBRACE",
- "DefinedValue : ID",
- "DefinedValue : NAME",
- "DefinedValue : ID DOT ID",
- "IdentifierList : IdentifierList COMMA ID",
- "IdentifierList : empty",
- "Values : NamedValueList",
- "Values : empty",
- "NamedValueList : NamedValue",
- "NamedValueList : NamedValueList COMMA NamedValue",
- "NamedValue : Value",
- "empty : /* empty */",
- "Octetstring : OCTET STRING",
- "Octetstring : OCTETSTRING",
- "Bitstring : BITSTRING",
- "Bitstring : BIT STRING",
- "SequenceOf : SEQUENCEOF",
- "SequenceOf : SEQUENCE OF",
- "SetOf : SETOF",
- "SetOf : SET OF",
- "Components : COMPONENTSOF",
- "Components : COMPONENTS OF",
- "ObjectIdentifierValue : LBRACE ObjIdComponentList RBRACE",
- "ObjIdComponentList : ObjIdComponent",
- "ObjIdComponentList : ObjIdComponentList ObjIdComponent",
- "ObjIdComponent : NumberForm",
- "ObjIdComponent : NameAndNumberForm",
- "NumberForm : LITNUMBER",
- "NumberForm : DefinedValue",
- "NameAndNumberForm : NAME LPAREN NumberForm RPAREN",
- "SubType : Type SubtypeSpec",
- "SubType : SET SizeConstraint OF Sctrl Action Control Type",
- "SubType : SEQUENCE SizeConstraint OF Sctrl Action Control Type",
- "SubtypeSpec : LPAREN SubtypeAlternative SubtypeAlternativeList RPAREN",
- "SubtypeAlternative : SubtypeValueSet",
- "SubtypeAlternative : SubtypeConstraint",
- "SubtypeAlternativeList : BAR SubtypeAlternative SubtypeAlternativeList",
- "SubtypeAlternativeList : empty",
- "SubtypeValueSet : Value",
- "SubtypeValueSet : ContainedSubType",
- "SubtypeValueSet : ValueRange",
- "SubtypeValueSet : PermittedAlphabet",
- "SubtypeConstraint : SizeConstraint",
- "SubtypeConstraint : InnerTypeConstraint",
- "ContainedSubType : INCLUDES Type",
- "ValueRange : LowerEndPoint DOTDOT UpperEndpoint",
- "LowerEndPoint : LowerEndValue",
- "LowerEndPoint : LowerEndValue LANGLE",
- "UpperEndpoint : UpperEndValue",
- "UpperEndpoint : LANGLE UpperEndValue",
- "LowerEndValue : Value",
- "LowerEndValue : MIN",
- "UpperEndValue : Value",
- "UpperEndValue : MAX",
- "SizeConstraint : SIZE SubtypeSpec",
- "PermittedAlphabet : FROM SubtypeSpec",
- "InnerTypeConstraint : WITH COMPONENT SingleTypeConstraint",
- "InnerTypeConstraint : WITH COMPONENTS MultipleTypeConstraints",
- "SingleTypeConstraint : SubtypeSpec",
- "MultipleTypeConstraints : FullSpecification",
- "MultipleTypeConstraints : PartialSpecification",
- "FullSpecification : LBRACE TypeConstraints RBRACE",
- "PartialSpecification : LBRACE DOTDOTDOT COMMA TypeConstraints RBRACE",
- "TypeConstraints : NamedConstraint",
- "TypeConstraints : NamedConstraint COMMA TypeConstraints",
- "NamedConstraint : NAME Constraint",
- "NamedConstraint : Constraint",
- "Constraint : ValueConstraint",
- "Constraint : PresenceConstraint",
- "Constraint : empty",
- "ValueConstraint : SubtypeSpec",
- "PresenceConstraint : PRESENT",
- "PresenceConstraint : ABSENT",
- "Sctrl : SCTRL",
- "Sctrl : empty",
- };
- #endif /* YYDEBUG */
- #line 1 "/usr/lib/yaccpar"
- /* @(#)yaccpar 1.10 89/04/04 SMI; from S5R3 1.10 */
-
- /*
- ** Skeleton parser driver for yacc output
- */
-
- /*
- ** yacc user known macros and defines
- */
- #define YYERROR goto yyerrlab
- #define YYACCEPT { free(yys); free(yyv); return(0); }
- #define YYABORT { free(yys); free(yyv); return(1); }
- #define YYBACKUP( newtoken, newvalue )\
- {\
- if ( yychar >= 0 || ( yyr2[ yytmp ] >> 1 ) != 1 )\
- {\
- yyerror( "syntax error - cannot backup" );\
- goto yyerrlab;\
- }\
- yychar = newtoken;\
- yystate = *yyps;\
- yylval = newvalue;\
- goto yynewstate;\
- }
- #define YYRECOVERING() (!!yyerrflag)
- #ifndef YYDEBUG
- # define YYDEBUG 1 /* make debugging available */
- #endif
-
- /*
- ** user known globals
- */
- int yydebug; /* set to 1 to get debugging */
-
- /*
- ** driver internal defines
- */
- #define YYFLAG (-1000)
-
- /*
- ** static variables used by the parser
- */
- static YYSTYPE *yyv; /* value stack */
- static int *yys; /* state stack */
-
- static YYSTYPE *yypv; /* top of value stack */
- static int *yyps; /* top of state stack */
-
- static int yystate; /* current state */
- static int yytmp; /* extra var (lasts between blocks) */
-
- int yynerrs; /* number of errors */
-
- int yyerrflag; /* error recovery flag */
- int yychar; /* current input token number */
-
-
- /*
- ** yyparse - return 0 if worked, 1 if syntax error not recovered from
- */
- int
- yyparse()
- {
- register YYSTYPE *yypvt; /* top of value stack for $vars */
- unsigned yymaxdepth = YYMAXDEPTH;
-
- /*
- ** Initialize externals - yyparse may be called more than once
- */
- yyv = (YYSTYPE*)malloc(yymaxdepth*sizeof(YYSTYPE));
- yys = (int*)malloc(yymaxdepth*sizeof(int));
- if (!yyv || !yys)
- {
- yyerror( "out of memory" );
- return(1);
- }
- yypv = &yyv[-1];
- yyps = &yys[-1];
- yystate = 0;
- yytmp = 0;
- yynerrs = 0;
- yyerrflag = 0;
- yychar = -1;
-
- goto yystack;
- {
- register YYSTYPE *yy_pv; /* top of value stack */
- register int *yy_ps; /* top of state stack */
- register int yy_state; /* current state */
- register int yy_n; /* internal state number info */
-
- /*
- ** get globals into registers.
- ** branch to here only if YYBACKUP was called.
- */
- yynewstate:
- yy_pv = yypv;
- yy_ps = yyps;
- yy_state = yystate;
- goto yy_newstate;
-
- /*
- ** get globals into registers.
- ** either we just started, or we just finished a reduction
- */
- yystack:
- yy_pv = yypv;
- yy_ps = yyps;
- yy_state = yystate;
-
- /*
- ** top of for (;;) loop while no reductions done
- */
- yy_stack:
- /*
- ** put a state and value onto the stacks
- */
- #if YYDEBUG
- /*
- ** if debugging, look up token value in list of value vs.
- ** name pairs. 0 and negative (-1) are special values.
- ** Note: linear search is used since time is not a real
- ** consideration while debugging.
- */
- if ( yydebug )
- {
- register int yy_i;
-
- (void)printf( "State %d, token ", yy_state );
- if ( yychar == 0 )
- (void)printf( "end-of-file\n" );
- else if ( yychar < 0 )
- (void)printf( "-none-\n" );
- else
- {
- for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val == yychar )
- break;
- }
- (void)printf( "%s\n", yytoks[yy_i].t_name );
- }
- }
- #endif /* YYDEBUG */
- if ( ++yy_ps >= &yys[ yymaxdepth ] ) /* room on stack? */
- {
- /*
- ** reallocate and recover. Note that pointers
- ** have to be reset, or bad things will happen
- */
- int yyps_index = (yy_ps - yys);
- int yypv_index = (yy_pv - yyv);
- int yypvt_index = (yypvt - yyv);
- yymaxdepth += YYMAXDEPTH;
- yyv = (YYSTYPE*)realloc((char*)yyv,
- yymaxdepth * sizeof(YYSTYPE));
- yys = (int*)realloc((char*)yys,
- yymaxdepth * sizeof(int));
- if (!yyv || !yys)
- {
- yyerror( "yacc stack overflow" );
- return(1);
- }
- yy_ps = yys + yyps_index;
- yy_pv = yyv + yypv_index;
- yypvt = yyv + yypvt_index;
- }
- *yy_ps = yy_state;
- *++yy_pv = yyval;
-
- /*
- ** we have a new state - find out what to do
- */
- yy_newstate:
- if ( ( yy_n = yypact[ yy_state ] ) <= YYFLAG )
- goto yydefault; /* simple state */
- #if YYDEBUG
- /*
- ** if debugging, need to mark whether new token grabbed
- */
- yytmp = yychar < 0;
- #endif
- if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
- yychar = 0; /* reached EOF */
- #if YYDEBUG
- if ( yydebug && yytmp )
- {
- register int yy_i;
-
- (void)printf( "Received token " );
- if ( yychar == 0 )
- (void)printf( "end-of-file\n" );
- else if ( yychar < 0 )
- (void)printf( "-none-\n" );
- else
- {
- for ( yy_i = 0; yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val == yychar )
- break;
- }
- (void)printf( "%s\n", yytoks[yy_i].t_name );
- }
- }
- #endif /* YYDEBUG */
- if ( ( ( yy_n += yychar ) < 0 ) || ( yy_n >= YYLAST ) )
- goto yydefault;
- if ( yychk[ yy_n = yyact[ yy_n ] ] == yychar ) /*valid shift*/
- {
- yychar = -1;
- yyval = yylval;
- yy_state = yy_n;
- if ( yyerrflag > 0 )
- yyerrflag--;
- goto yy_stack;
- }
-
- yydefault:
- if ( ( yy_n = yydef[ yy_state ] ) == -2 )
- {
- #if YYDEBUG
- yytmp = yychar < 0;
- #endif
- if ( ( yychar < 0 ) && ( ( yychar = yylex() ) < 0 ) )
- yychar = 0; /* reached EOF */
- #if YYDEBUG
- if ( yydebug && yytmp )
- {
- register int yy_i;
-
- (void)printf( "Received token " );
- if ( yychar == 0 )
- (void)printf( "end-of-file\n" );
- else if ( yychar < 0 )
- (void)printf( "-none-\n" );
- else
- {
- for ( yy_i = 0;
- yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val
- == yychar )
- {
- break;
- }
- }
- (void)printf( "%s\n", yytoks[yy_i].t_name );
- }
- }
- #endif /* YYDEBUG */
- /*
- ** look through exception table
- */
- {
- register int *yyxi = yyexca;
-
- while ( ( *yyxi != -1 ) ||
- ( yyxi[1] != yy_state ) )
- {
- yyxi += 2;
- }
- while ( ( *(yyxi += 2) >= 0 ) &&
- ( *yyxi != yychar ) )
- ;
- if ( ( yy_n = yyxi[1] ) < 0 )
- YYACCEPT;
- }
- }
-
- /*
- ** check for syntax error
- */
- if ( yy_n == 0 ) /* have an error */
- {
- /* no worry about speed here! */
- switch ( yyerrflag )
- {
- case 0: /* new error */
- yyerror( "syntax error" );
- goto skip_init;
- yyerrlab:
- /*
- ** get globals into registers.
- ** we have a user generated syntax type error
- */
- yy_pv = yypv;
- yy_ps = yyps;
- yy_state = yystate;
- yynerrs++;
- skip_init:
- case 1:
- case 2: /* incompletely recovered error */
- /* try again... */
- yyerrflag = 3;
- /*
- ** find state where "error" is a legal
- ** shift action
- */
- while ( yy_ps >= yys )
- {
- yy_n = yypact[ *yy_ps ] + YYERRCODE;
- if ( yy_n >= 0 && yy_n < YYLAST &&
- yychk[yyact[yy_n]] == YYERRCODE) {
- /*
- ** simulate shift of "error"
- */
- yy_state = yyact[ yy_n ];
- goto yy_stack;
- }
- /*
- ** current state has no shift on
- ** "error", pop stack
- */
- #if YYDEBUG
- # define _POP_ "Error recovery pops state %d, uncovers state %d\n"
- if ( yydebug )
- (void)printf( _POP_, *yy_ps,
- yy_ps[-1] );
- # undef _POP_
- #endif
- yy_ps--;
- yy_pv--;
- }
- /*
- ** there is no state on stack with "error" as
- ** a valid shift. give up.
- */
- YYABORT;
- case 3: /* no shift yet; eat a token */
- #if YYDEBUG
- /*
- ** if debugging, look up token in list of
- ** pairs. 0 and negative shouldn't occur,
- ** but since timing doesn't matter when
- ** debugging, it doesn't hurt to leave the
- ** tests here.
- */
- if ( yydebug )
- {
- register int yy_i;
-
- (void)printf( "Error recovery discards " );
- if ( yychar == 0 )
- (void)printf( "token end-of-file\n" );
- else if ( yychar < 0 )
- (void)printf( "token -none-\n" );
- else
- {
- for ( yy_i = 0;
- yytoks[yy_i].t_val >= 0;
- yy_i++ )
- {
- if ( yytoks[yy_i].t_val
- == yychar )
- {
- break;
- }
- }
- (void)printf( "token %s\n",
- yytoks[yy_i].t_name );
- }
- }
- #endif /* YYDEBUG */
- if ( yychar == 0 ) /* reached EOF. quit */
- YYABORT;
- yychar = -1;
- goto yy_newstate;
- }
- }/* end if ( yy_n == 0 ) */
- /*
- ** reduction by production yy_n
- ** put stack tops, etc. so things right after switch
- */
- #if YYDEBUG
- /*
- ** if debugging, print the string that is the user's
- ** specification of the reduction which is just about
- ** to be done.
- */
- if ( yydebug )
- (void)printf( "Reduce by (%d) \"%s\"\n",
- yy_n, yyreds[ yy_n ] );
- #endif
- yytmp = yy_n; /* value to switch over */
- yypvt = yy_pv; /* $vars top of value stack */
- /*
- ** Look in goto table for next state
- ** Sorry about using yy_state here as temporary
- ** register variable, but why not, if it works...
- ** If yyr2[ yy_n ] doesn't have the low order bit
- ** set, then there is no action to be done for
- ** this reduction. So, no saving & unsaving of
- ** registers done. The only difference between the
- ** code just after the if and the body of the if is
- ** the goto yy_stack in the body. This way the test
- ** can be made before the choice of what to do is needed.
- */
- {
- /* length of production doubled with extra bit */
- register int yy_len = yyr2[ yy_n ];
-
- if ( !( yy_len & 01 ) )
- {
- yy_len >>= 1;
- yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
- yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
- *( yy_ps -= yy_len ) + 1;
- if ( yy_state >= YYLAST ||
- yychk[ yy_state =
- yyact[ yy_state ] ] != -yy_n )
- {
- yy_state = yyact[ yypgo[ yy_n ] ];
- }
- goto yy_stack;
- }
- yy_len >>= 1;
- yyval = ( yy_pv -= yy_len )[1]; /* $$ = $1 */
- yy_state = yypgo[ yy_n = yyr1[ yy_n ] ] +
- *( yy_ps -= yy_len ) + 1;
- if ( yy_state >= YYLAST ||
- yychk[ yy_state = yyact[ yy_state ] ] != -yy_n )
- {
- yy_state = yyact[ yypgo[ yy_n ] ];
- }
- }
- /* save until reenter driver code */
- yystate = yy_state;
- yyps = yy_ps;
- yypv = yy_pv;
- }
- /*
- ** code supplied by user is placed in this switch
- */
- switch( yytmp )
- {
-
- case 1:
- # line 183 "yacc.y"
- {
- mymodule = yypvt[-3].yy_string;
- mymoduleid = modid;
- pass1 ();
- } break;
- case 2:
- # line 189 "yacc.y"
- { pass2 (); final_actions++; } break;
- case 4:
- # line 193 "yacc.y"
- {
- tagdefault = 0;
- tagcontrol = TAG_EXPLICIT;
- } break;
- case 5:
- # line 197 "yacc.y"
- {
- tagdefault = YP_IMPLICIT;
- tagcontrol = TAG_IMPLICIT;
- } break;
- case 6:
- # line 201 "yacc.y"
- {
- tagdefault = 0;
- tagcontrol = TAG_UNKNOWN;
- } break;
- case 7:
- # line 207 "yacc.y"
- { yyval.yy_string = yypvt[-1].yy_string; } break;
- case 8:
- # line 210 "yacc.y"
- { modid = yypvt[-0].yy_oid; } break;
- case 10:
- # line 214 "yacc.y"
- {
- if (!dflag) {
- if (Cflag > 0) {
- if (!Pflag && *sysin)
- printf ("# line %d \"%s\"\n",
- yypvt[-0].yy_action -> ya_lineno, sysin);
- fputs (yypvt[-0].yy_action -> ya_text, stdout);
- }
- else {
- printf ("%%{\n#include \"%s-types.h\"\n",
- mymodule);
- printf ("%s%%}\n", yypvt[-0].yy_action -> ya_text);
- Cflag = -1;
- }
- }
- free_action (yypvt[-0].yy_action);
- } break;
- case 12:
- # line 235 "yacc.y"
- {
- yyencdflt = yypvt[-2].yy_string;
- yydecdflt = yypvt[-1].yy_string;
- yyprfdflt = yypvt[-0].yy_string;
- } break;
- case 15:
- # line 245 "yacc.y"
- { listtype = TBL_EXPORT; doexternals = 0;
- yyporting = 1; } break;
- case 16:
- # line 247 "yacc.y"
- {
- yyporting = 0;
- } break;
- case 20:
- # line 257 "yacc.y"
- { listtype = TBL_IMPORT; yyporting = 1; } break;
- case 21:
- # line 258 "yacc.y"
- {
- yyporting = 0;
- } break;
- case 27:
- # line 274 "yacc.y"
- {
- addtableref (yypvt[-0].yy_string, modid, listtype);
- } break;
- case 28:
- # line 279 "yacc.y"
- { addtable(yypvt[-0].yy_string, listtype); } break;
- case 29:
- # line 280 "yacc.y"
- { addtable (yypvt[-0].yy_string, listtype); } break;
- case 34:
- # line 292 "yacc.y"
- { yysection = YP_ENCODER; yyencpref = yypvt[-0].yy_string;
- yyprint (NULLCP, 0, 1); } break;
- case 35:
- # line 295 "yacc.y"
- { yysection = YP_DECODER; yydecpref = yypvt[-0].yy_string;
- yyprint (NULLCP, 0, 1); } break;
- case 36:
- # line 298 "yacc.y"
- { yysection = YP_PRINTER; yyprfpref = yypvt[-0].yy_string;
- yyprint (NULLCP, 0, 1); } break;
- case 37:
- # line 301 "yacc.y"
- {
- yysection = NULL;
- if (strcmp (yyencpref = yypvt[-2].yy_string, "none"))
- yysection |= YP_ENCODER;
- if (strcmp (yydecpref = yypvt[-1].yy_string, "none"))
- yysection |= YP_DECODER;
- if (strcmp (yyprfpref = yypvt[-0].yy_string, "none"))
- yysection |= YP_PRINTER;
- yyprint (NULLCP, 0, 1);
- } break;
- case 39:
- # line 314 "yacc.y"
- { yyval.yy_string = yypvt[-0].yy_string; } break;
- case 40:
- # line 315 "yacc.y"
- { yyval.yy_string = yypvt[-0].yy_string; } break;
- case 47:
- # line 332 "yacc.y"
- {
- pass1_op (mymodule, yypvt[-7].yy_string, yypvt[-5].yy_type, yypvt[-4].yy_type, yypvt[-3].yy_value, yypvt[-2].yy_value, yypvt[-0].yy_number);
- } break;
- case 48:
- # line 337 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 49:
- # line 338 "yacc.y"
- { yyval.yy_type = NULLYP; } break;
- case 50:
- # line 341 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 51:
- # line 342 "yacc.y"
- { yyval.yy_type = NULLYP; } break;
- case 52:
- # line 345 "yacc.y"
- { yyval.yy_value = yypvt[-1].yy_value; } break;
- case 53:
- # line 346 "yacc.y"
- { yyval.yy_value = NULLYV; } break;
- case 54:
- # line 348 "yacc.y"
- { yyval.yy_value = yypvt[-1].yy_value; } break;
- case 55:
- # line 349 "yacc.y"
- { yyval.yy_value = NULLYV; } break;
- case 56:
- # line 352 "yacc.y"
- {
- yyval.yy_value = new_value (YV_VALIST);
- yyval.yy_value -> yv_idlist = yypvt[-0].yy_value;
- } break;
- case 57:
- # line 356 "yacc.y"
- { yyval.yy_value = NULLYV; } break;
- case 58:
- # line 359 "yacc.y"
- {
- yyval.yy_value = new_value (YV_VALIST);
- yyval.yy_value -> yv_idlist = yypvt[-0].yy_value;
- } break;
- case 59:
- # line 363 "yacc.y"
- { yyval.yy_value = NULLYV; } break;
- case 60:
- # line 366 "yacc.y"
- {
- pass1_err (mymodule, yypvt[-4].yy_string, yypvt[-2].yy_type, yypvt[-0].yy_number);
- } break;
- case 61:
- # line 371 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 62:
- # line 372 "yacc.y"
- { yyval.yy_type = NULLYP; } break;
- case 95:
- # line 446 "yacc.y"
- {
- if (yypvt[-4].yy_string)
- yypvt[-0].yy_type -> yp_param_type = yypvt[-4].yy_string;
- if (yypvt[-3].yy_action) {
- yypvt[-0].yy_type -> yp_action0 = yypvt[-3].yy_action -> ya_text;
- yypvt[-0].yy_type -> yp_act0_lineno= yypvt[-3].yy_action -> ya_lineno;
- free_action (yypvt[-3].yy_action);
- }
- if (yypvt[-1].yy_action) {
- if (yypvt[-0].yy_type -> yp_action05 == NULLCP) {
- yypvt[-0].yy_type -> yp_action05 = yypvt[-1].yy_action -> ya_text;
- yypvt[-0].yy_type -> yp_act05_lineno= yypvt[-1].yy_action -> ya_lineno;
- free_action (yypvt[-1].yy_action);
- }
- else
- yyerror("too many preliminary actions associated with type");
- }
- pass1_type (yyencpref, yydecpref, yyprfpref,
- mymodule, yypvt[-5].yy_string, yypvt[-0].yy_type);
- } break;
- case 96:
- # line 467 "yacc.y"
- {
- yyval.yy_type = yypvt[-1].yy_type;
- yyval.yy_type -> yp_direction = yysection;
- if (yypvt[-0].yy_action) {
- yyval.yy_type -> yp_action2 = yypvt[-0].yy_action -> ya_text;
- yyval.yy_type -> yp_act2_lineno= yypvt[-0].yy_action -> ya_lineno;
- free_action (yypvt[-0].yy_action);
- }
- } break;
- case 97:
- # line 476 "yacc.y"
- {
- yyval.yy_type = yypvt[-1].yy_type;
- yyval.yy_type -> yp_direction = yysection;
- if (yypvt[-0].yy_action) {
- yyval.yy_type -> yp_action2 = yypvt[-0].yy_action -> ya_text;
- yyval.yy_type -> yp_act2_lineno= yypvt[-0].yy_action -> ya_lineno;
- free_action (yypvt[-0].yy_action);
- }
- } break;
- case 98:
- # line 485 "yacc.y"
- {
- yyval.yy_type = yypvt[-1].yy_type;
- yyval.yy_type -> yp_direction = yysection;
- if (yypvt[-0].yy_action) {
- yyval.yy_type -> yp_action2 = yypvt[-0].yy_action -> ya_text;
- yyval.yy_type -> yp_act2_lineno = yypvt[-0].yy_action -> ya_lineno;
- free_action (yypvt[-0].yy_action);
- }
- } break;
- case 100:
- # line 497 "yacc.y"
- { yyval.yy_action = NULLYA; } break;
- case 102:
- # line 501 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 104:
- # line 505 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 105:
- # line 508 "yacc.y"
- {
- yyval.yy_type = new_type (YP_BOOL);
- yyval.yy_type -> yp_intexp = yypvt[-0].yy_string;
- } break;
- case 106:
- # line 512 "yacc.y"
- {
- yyval.yy_type = new_type (yypvt[-0].yy_value ? YP_INTLIST : YP_INT);
- yyval.yy_type -> yp_intexp = yypvt[-1].yy_string;
- if (yypvt[-0].yy_value)
- yyval.yy_type -> yp_value = yypvt[-0].yy_value;
- } break;
- case 107:
- # line 518 "yacc.y"
- {
- yyval.yy_type = new_type (YP_ENUMLIST);
- yyval.yy_type -> yp_intexp = yypvt[-3].yy_string;
- yyval.yy_type -> yp_value = yypvt[-1].yy_value;
- } break;
- case 108:
- # line 524 "yacc.y"
- {
- yyval.yy_type = yypvt[-1].yy_type;
- yyval.yy_type -> yp_code = yypvt[-0].yy_value ? YP_BITLIST: YP_BIT;
- if (yypvt[-0].yy_value)
- yyval.yy_type -> yp_value = yypvt[-0].yy_value;
- } break;
- case 109:
- # line 530 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_code = YP_OCT;
- } break;
- case 110:
- # line 534 "yacc.y"
- { yyval.yy_type = new_type (YP_NULL); } break;
- case 111:
- # line 535 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SEQ);
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- } break;
- case 112:
- # line 539 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SEQTYPE);
- yyval.yy_type -> yp_type = yypvt[-0].yy_type;
- if (yypvt[-3].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-3].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-3].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-3].yy_sctrl);
- }
- if (yypvt[-1].yy_string) {
- yyval.yy_type -> yp_control = yypvt[-1].yy_string;
- yyval.yy_type -> yp_flags |= YP_CONTROLLED;
- }
- if (yypvt[-2].yy_action) {
- yyval.yy_type -> yp_action3 = yypvt[-2].yy_action -> ya_text;
- yyval.yy_type -> yp_act3_lineno = yypvt[-2].yy_action -> ya_lineno;
- free_action (yypvt[-2].yy_action);
- }
- } break;
- case 113:
- # line 557 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SEQLIST);
- yyval.yy_type -> yp_type = yypvt[-1].yy_type;
- if (yypvt[-4].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-4].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-4].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-4].yy_sctrl);
- }
- if (yypvt[-3].yy_action && yyval.yy_type -> yp_action1 == NULLCP) {
- yyval.yy_type -> yp_action1 = yypvt[-3].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno = yypvt[-3].yy_action -> ya_lineno;
- free_action (yypvt[-3].yy_action);
- }
- else if (yypvt[-3].yy_action)
- yyerror("too many actions associated with SEQUENCE");
- } break;
- case 114:
- # line 573 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SET);
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- } break;
- case 115:
- # line 577 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SETTYPE);
- yyval.yy_type -> yp_type = yypvt[-0].yy_type;
- if (yypvt[-3].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-3].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-3].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-3].yy_sctrl);
- }
- if (yypvt[-1].yy_string) {
- yyval.yy_type -> yp_control = yypvt[-1].yy_string;
- yyval.yy_type -> yp_flags |= YP_CONTROLLED;
- }
- if (yypvt[-2].yy_action) {
- yyval.yy_type -> yp_action3 = yypvt[-2].yy_action -> ya_text;
- yyval.yy_type -> yp_act3_lineno = yypvt[-2].yy_action -> ya_lineno;
- free_action (yypvt[-2].yy_action);
- }
- } break;
- case 116:
- # line 596 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SETLIST);
- yyval.yy_type -> yp_type = yypvt[-1].yy_type;
- if (yypvt[-4].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-4].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-4].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-4].yy_sctrl);
- }
- if (yypvt[-3].yy_action && yyval.yy_type -> yp_action1 == NULLCP) {
- yyval.yy_type -> yp_action1 = yypvt[-3].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno = yypvt[-3].yy_action -> ya_lineno;
- free_action (yypvt[-3].yy_action);
- }
- else if (yypvt[-3].yy_action)
- yyerror("too many actions associated with SET");
- } break;
- case 117:
- # line 612 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_tag = yypvt[-3].yy_tag;
- if (yypvt[-2].yy_action && yyval.yy_type -> yp_action1 == NULLCP) {
- yyval.yy_type -> yp_action1 = yypvt[-2].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno= yypvt[-2].yy_action -> ya_lineno;
- free_action (yypvt[-2].yy_action);
- }
- else if (yypvt[-2].yy_action)
- yyerror("too many actions associated with tagged type");
- yyval.yy_type -> yp_flags |= YP_IMPLICIT | YP_TAG;
- } break;
- case 118:
- # line 624 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_tag = yypvt[-3].yy_tag;
- if (yypvt[-2].yy_action && yyval.yy_type -> yp_action1 == NULLCP) {
- yyval.yy_type -> yp_action1 = yypvt[-2].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno= yypvt[-2].yy_action -> ya_lineno;
- free_action (yypvt[-2].yy_action);
- }
- else if (yypvt[-2].yy_action)
- yyerror("too many actions associated with tagged type");
- yyval.yy_type -> yp_flags |= YP_TAG;
- } break;
- case 119:
- # line 636 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_tag = yypvt[-2].yy_tag;
- if (yypvt[-1].yy_action && yyval.yy_type -> yp_action1 == NULLCP) {
- yyval.yy_type -> yp_action1 = yypvt[-1].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno= yypvt[-1].yy_action -> ya_lineno;
- free_action (yypvt[-1].yy_action);
- }
- else if (yypvt[-1].yy_action)
- yyerror("too many actions associated with tagged type");
- yyval.yy_type -> yp_flags |= (YP_TAG | tagdefault);
- } break;
- case 120:
- # line 649 "yacc.y"
- {
- yyval.yy_type = new_type (YP_CHOICE);
- yyval.yy_type -> yp_type = yypvt[-1].yy_type;
- if (yypvt[-5].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-5].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-5].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-5].yy_sctrl);
- }
- if (yypvt[-3].yy_string) {
- yyval.yy_type -> yp_control = yypvt[-3].yy_string;
- yyval.yy_type -> yp_flags |= YP_CONTROLLED;
- }
- if (yyval.yy_type -> yp_action1 == NULLCP && yypvt[-4].yy_action) {
- yyval.yy_type -> yp_action1 = yypvt[-4].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno = yypvt[-4].yy_action -> ya_lineno;
- free_action (yypvt[-4].yy_action);
- }
- else if (yypvt[-4].yy_action)
- yyerror("too many actions associated with CHOICE");
- } break;
- case 121:
- # line 669 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_bound = yypvt[-2].yy_string;
- yyval.yy_type -> yp_flags |= YP_BOUND;
- } break;
- case 122:
- # line 674 "yacc.y"
- {
- yyval.yy_type = new_type (YP_ANY);
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- } break;
- case 123:
- # line 678 "yacc.y"
- {
- yyval.yy_type = new_type (YP_OID);
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- } break;
- case 124:
- # line 682 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_tag = new_tag (PE_CLASS_UNIV);
- yyval.yy_type -> yp_tag -> yt_value = new_value(YV_NUMBER);
- yyval.yy_type -> yp_tag -> yt_value -> yv_number = PE_PRIM_ENCR;
- yyval.yy_type -> yp_flags |=
- (YP_ENCRYPTED | YP_TAG | YP_IMPLICIT);
- } break;
- case 125:
- # line 690 "yacc.y"
- {
- yyval.yy_type = new_type(YP_REAL);
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- } break;
- case 126:
- # line 696 "yacc.y"
- { yyval.yy_value = yypvt[-1].yy_value; } break;
- case 127:
- # line 697 "yacc.y"
- { yyval.yy_value = NULL; } break;
- case 128:
- # line 699 "yacc.y"
- {
- yyval.yy_type = yypvt[-1].yy_type;
- yyval.yy_type -> yp_code = YP_IDEFINED;
- yyval.yy_type -> yp_identifier = yypvt[-2].yy_string;
- if (yypvt[-0].yy_string) {
- yyval.yy_type -> yp_parm = yypvt[-0].yy_string;
- yyval.yy_type -> yp_flags |= YP_PARMVAL;
- }
- #ifndef lint
- check_impexp (yyval.yy_type);
- #endif
- } break;
- case 129:
- # line 711 "yacc.y"
- {
- yyval.yy_type = yypvt[-1].yy_type;
- yyval.yy_type -> yp_code = YP_IDEFINED;
- yyval.yy_type -> yp_identifier = yypvt[-2].yy_string;
- yyval.yy_type -> yp_module = yypvt[-4].yy_string;
- if (yypvt[-0].yy_string) {
- yyval.yy_type -> yp_parm = yypvt[-0].yy_string;
- yyval.yy_type -> yp_flags |= YP_PARMVAL;
- }
- } break;
- case 130:
- # line 723 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = NULLCP;
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_prfexp = 'a';
- } break;
- case 131:
- # line 729 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_strexp = NULLCP;
- yyval.yy_type -> yp_prfexp = 'b';
- } break;
- case 132:
- # line 735 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_strexp = NULLCP;
- yyval.yy_type -> yp_prfexp = 'i';
- } break;
- case 133:
- # line 741 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_strexp = yypvt[-1].yy_string;
- yyval.yy_type -> yp_prfexp = 'x';
- } break;
- case 134:
- # line 747 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = NULLCP;
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_prfexp = 'O';
- } break;
- case 139:
- # line 761 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 141:
- # line 765 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 143:
- # line 769 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 145:
- # line 773 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 146:
- # line 776 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_strexp = yypvt[-1].yy_string;
- } break;
- case 148:
- # line 784 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = NULLCP;
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_prfexp = 's';
- } break;
- case 149:
- # line 790 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_strexp = yypvt[-1].yy_string;
- yyval.yy_type -> yp_prfexp = 'o';
- } break;
- case 150:
- # line 796 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = NULLCP;
- yyval.yy_type -> yp_strexp = yypvt[-0].yy_string;
- yyval.yy_type -> yp_prfexp = 'q';
- } break;
- case 153:
- # line 806 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 154:
- # line 809 "yacc.y"
- {
- yyval.yy_type = new_type (YP_UNDF);
- yyval.yy_type -> yp_intexp = NULLCP;
- yyval.yy_type -> yp_strexp = NULLCP;
- } break;
- case 156:
- # line 817 "yacc.y"
- { yyval.yy_string = NULLCP; } break;
- case 157:
- # line 820 "yacc.y"
- { yyval.yy_value = yypvt[-0].yy_value; } break;
- case 158:
- # line 821 "yacc.y"
- {
- yyval.yy_value = add_value (yypvt[-2].yy_value, yypvt[-0].yy_value);
- } break;
- case 159:
- # line 825 "yacc.y"
- {
- yyval.yy_value = yypvt[-2].yy_value;
- yyval.yy_value -> yv_named = yypvt[-4].yy_string;
- yyval.yy_value -> yv_flags |= YV_NAMED;
- if (yypvt[-0].yy_action) {
- yyval.yy_value -> yv_action = yypvt[-0].yy_action -> ya_text;
- yyval.yy_value -> yv_act_lineno = yypvt[-0].yy_action -> ya_lineno;
- free_action (yypvt[-0].yy_action);
- }
- } break;
- case 160:
- # line 836 "yacc.y"
- {
- yyval.yy_value = new_value (YV_NUMBER);
- yyval.yy_value -> yv_number = yypvt[-0].yy_number;
- } break;
- case 162:
- # line 843 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 163:
- # line 844 "yacc.y"
- { yyval.yy_type = NULLYP; } break;
- case 164:
- # line 846 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 165:
- # line 848 "yacc.y"
- { yyval.yy_type = NULLYP; } break;
- case 166:
- # line 850 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 167:
- # line 851 "yacc.y"
- {
- yyval.yy_type = add_type (yypvt[-2].yy_type, yypvt[-0].yy_type);
- } break;
- case 168:
- # line 855 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 169:
- # line 856 "yacc.y"
- {
- yyval.yy_type = yypvt[-2].yy_type;
- yyval.yy_type -> yp_flags |= YP_OPTIONAL;
- if (yypvt[-0].yy_string) {
- yyval.yy_type -> yp_optcontrol = yypvt[-0].yy_string;
- yyval.yy_type -> yp_flags |= YP_OPTCONTROL;
- }
- } break;
- case 170:
- # line 864 "yacc.y"
- {
- yyval.yy_type = yypvt[-3].yy_type;
- yyval.yy_type -> yp_default = yypvt[-1].yy_value;
- yyval.yy_type -> yp_flags |= YP_DEFAULT;
- if (yypvt[-0].yy_string) {
- yyval.yy_type -> yp_optcontrol = yypvt[-0].yy_string;
- yyval.yy_type -> yp_flags |= YP_OPTCONTROL;
- }
- } break;
- case 171:
- # line 873 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 172:
- # line 874 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; yyval.yy_type->yp_id = yypvt[-1].yy_string; } break;
- case 173:
- # line 876 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_id = yypvt[-2].yy_string;
- if (yyval.yy_type -> yp_action1 == NULLCP && yypvt[-1].yy_action) {
- yyval.yy_type -> yp_action1 = yypvt[-1].yy_action -> ya_text;
- yyval.yy_type -> yp_act1_lineno = yypvt[-1].yy_action -> ya_lineno;
- free_action (yypvt[-1].yy_action);
- }
- yyval.yy_type -> yp_flags |= YP_ID;
- } break;
- case 174:
- # line 886 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 175:
- # line 888 "yacc.y"
- {
- yyval.yy_type = yypvt[-0].yy_type;
- yyval.yy_type -> yp_flags |= YP_COMPONENTS;
- } break;
- case 176:
- # line 893 "yacc.y"
- { yyval.yy_type = yypvt[-0].yy_type; } break;
- case 177:
- # line 894 "yacc.y"
- {
- yyval.yy_type = add_type (yypvt[-2].yy_type, yypvt[-0].yy_type);
- } break;
- case 178:
- # line 899 "yacc.y"
- {
- yyval.yy_tag = yypvt[-2].yy_tag;
- yyval.yy_tag -> yt_value = yypvt[-1].yy_value;
- } break;
- case 179:
- # line 904 "yacc.y"
- { yyval.yy_tag = new_tag (PE_CLASS_UNIV); } break;
- case 180:
- # line 905 "yacc.y"
- { yyval.yy_tag = new_tag (PE_CLASS_APPL); } break;
- case 181:
- # line 906 "yacc.y"
- { yyval.yy_tag = new_tag (PE_CLASS_PRIV); } break;
- case 182:
- # line 907 "yacc.y"
- { yyval.yy_tag = new_tag (PE_CLASS_CONT); } break;
- case 186:
- # line 917 "yacc.y"
- {
- yyval.yy_value = new_value (YV_BOOL);
- yyval.yy_value -> yv_number = 1;
- } break;
- case 187:
- # line 921 "yacc.y"
- {
- yyval.yy_value = new_value (YV_BOOL);
- yyval.yy_value -> yv_number = 0;
- } break;
- case 188:
- # line 925 "yacc.y"
- {
- yyval.yy_value = new_value (YV_NUMBER);
- yyval.yy_value -> yv_number = yypvt[-0].yy_number;
- } break;
- case 189:
- # line 929 "yacc.y"
- {
- yyval.yy_value = new_value (YV_IDLIST);
- yyval.yy_value -> yv_idlist = new_value (YV_IDEFINED);
- yyval.yy_value -> yv_idlist -> yv_identifier = yypvt[-2].yy_string;
- if (yypvt[-1].yy_value)
- yyval.yy_value = add_value (yyval.yy_value, yypvt[-1].yy_value);
- } break;
- case 190:
- # line 936 "yacc.y"
- {
- yyval.yy_value = new_value (YV_STRING);
- yyval.yy_value -> yv_string = yypvt[-0].yy_string;
- } break;
- case 191:
- # line 940 "yacc.y"
- { yyval.yy_value = new_value (YV_NULL); } break;
- case 192:
- # line 941 "yacc.y"
- {
- yyval.yy_value = new_value (YV_VALIST);
- yyval.yy_value -> yv_idlist = yypvt[-1].yy_value;
- } break;
- case 193:
- # line 945 "yacc.y"
- {
- yyval.yy_value = yypvt[-0].yy_value;
- yyval.yy_value -> yv_id = yypvt[-1].yy_string;
- yyval.yy_value -> yv_flags |= YV_ID;
- } break;
- case 194:
- # line 950 "yacc.y"
- {
- yyval.yy_value = yypvt[-0].yy_value;
- yyval.yy_value -> yv_type = yypvt[-1].yy_type;
- yyval.yy_value -> yv_flags |= YV_TYPE;
- } break;
- case 195:
- # line 955 "yacc.y"
- {
- yyval.yy_value = new_value (YV_REAL);
- yyval.yy_value -> yv_real = yypvt[-0].yy_real;
- } break;
- case 198:
- # line 965 "yacc.y"
- { yyval.yy_real = PE_REAL_INFINITY;} break;
- case 199:
- # line 966 "yacc.y"
- { yyval.yy_real = - PE_REAL_INFINITY; } break;
- case 200:
- # line 970 "yacc.y"
- {
- if (yypvt[-3].yy_number != 2 && yypvt[-3].yy_number != 10)
- myyerror ("Illegal base value %d", yypvt[-3].yy_number);
- yyval.yy_real = yypvt[-5].yy_number * pow ((double)yypvt[-3].yy_number, (double)yypvt[-1].yy_number);
- } break;
- case 201:
- # line 977 "yacc.y"
- {
- yyval.yy_value = new_value (YV_IDEFINED);
- yyval.yy_value -> yv_identifier = yypvt[-0].yy_string;
- } break;
- case 202:
- # line 981 "yacc.y"
- { /* XXX */
- yyval.yy_value = new_value (YV_IDEFINED);
- yyval.yy_value -> yv_identifier = yypvt[-0].yy_string;
- yyval.yy_value -> yv_flags |= YV_BOUND;
- } break;
- case 203:
- # line 986 "yacc.y"
- {
- yyval.yy_value = new_value (YV_IDEFINED);
- yyval.yy_value -> yv_identifier = yypvt[-0].yy_string;
- yyval.yy_value -> yv_module = yypvt[-2].yy_string;
- } break;
- case 204:
- # line 993 "yacc.y"
- {
- yyval.yy_value = new_value (YV_IDEFINED);
- yyval.yy_value -> yv_identifier = yypvt[-0].yy_string;
- if (yypvt[-2].yy_value)
- yyval.yy_value = add_value (yypvt[-2].yy_value, yyval.yy_value);
- } break;
- case 205:
- # line 999 "yacc.y"
- { yyval.yy_value = NULLYV; } break;
- case 206:
- # line 1002 "yacc.y"
- { yyval.yy_value = yypvt[-0].yy_value; } break;
- case 207:
- # line 1003 "yacc.y"
- { yyval.yy_value = NULLYV; } break;
- case 208:
- # line 1005 "yacc.y"
- { yyval.yy_value = yypvt[-0].yy_value; } break;
- case 209:
- # line 1006 "yacc.y"
- {
- yyval.yy_value = add_value (yypvt[-2].yy_value, yypvt[-0].yy_value);
- } break;
- case 210:
- # line 1010 "yacc.y"
- { yyval.yy_value = yypvt[-0].yy_value; } break;
- case 222:
- # line 1034 "yacc.y"
- { yyval.yy_oid = yypvt[-1].yy_oid; } break;
- case 224:
- # line 1039 "yacc.y"
- {
- yyval.yy_oid = addoid(yypvt[-1].yy_oid, yypvt[-0].yy_oid);
- oid_free (yypvt[-1].yy_oid);
- oid_free (yypvt[-0].yy_oid);
- } break;
- case 227:
- # line 1050 "yacc.y"
- { yyval.yy_oid = int2oid (yypvt[-0].yy_number); } break;
- case 228:
- # line 1051 "yacc.y"
- {
- yyval.yy_oid = oidlookup(yypvt[-0].yy_value->yv_identifier);
- free((char *)yypvt[-0].yy_value);
- } break;
- case 229:
- # line 1057 "yacc.y"
- {
- free (yypvt[-3].yy_string);
- yyval.yy_oid = yypvt[-1].yy_oid;
- } break;
- case 231:
- # line 1064 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SETTYPE);
- yyval.yy_type -> yp_type = yypvt[-0].yy_type;
- if (yypvt[-3].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-3].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-3].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-3].yy_sctrl);
- }
- if (yypvt[-1].yy_string) {
- yyval.yy_type -> yp_control = yypvt[-1].yy_string;
- yyval.yy_type -> yp_flags |= YP_CONTROLLED;
- }
- if (yypvt[-2].yy_action) {
- yyval.yy_type -> yp_action3 = yypvt[-2].yy_action -> ya_text;
- yyval.yy_type -> yp_act2_lineno = yypvt[-2].yy_action -> ya_lineno;
- free_action (yypvt[-2].yy_action);
- }
- } break;
- case 232:
- # line 1083 "yacc.y"
- {
- yyval.yy_type = new_type (YP_SEQTYPE);
- yyval.yy_type -> yp_type = yypvt[-0].yy_type;
- if (yypvt[-3].yy_sctrl) {
- yyval.yy_type -> yp_structname = yypvt[-3].yy_sctrl -> ys_structname;
- yyval.yy_type -> yp_ptrname = yypvt[-3].yy_sctrl -> ys_ptrname;
- free_ys (yypvt[-3].yy_sctrl);
- }
- if (yypvt[-1].yy_string) {
- yyval.yy_type -> yp_control = yypvt[-1].yy_string;
- yyval.yy_type -> yp_flags |= YP_CONTROLLED;
- }
- if (yypvt[-2].yy_action) {
- yyval.yy_type -> yp_action3 = yypvt[-2].yy_action -> ya_text;
- yyval.yy_type -> yp_act3_lineno = yypvt[-2].yy_action -> ya_lineno;
- free_action (yypvt[-2].yy_action);
- }
- } break;
- case 273:
- # line 1188 "yacc.y"
- { yyval.yy_sctrl = new_ys (yypvt[-0].yy_string); } break;
- case 274:
- # line 1189 "yacc.y"
- { yyval.yy_sctrl = NULLYS; } break;
- }
- goto yystack; /* reset registers in driver code */
- }